// https://leetcode.cn/problems/number-of-1-bits
class Solution {
public:
    int hammingWeight(int n) {
        // 法1. 遍历一遍计数
        // int count = 0;
        // for(int i = 0; i < 32; i++) {
        //     if(n & (1 << i)) count++;
        // }
        // return count;

        // 法2. 位运算优化,每次去干掉最右侧的1,直到n变为0
        int count = 0;
        while(n) {
            n = n & (n - 1); // 干掉最右侧的1
            count++;
        }
        return count;
    }
};
